﻿Imports System.Net
Imports System.Net.Security
Imports System.Security.Cryptography.X509Certificates
Imports wappSICRC.WSOlimpia


Module mdlIntegracion
    Public athUsuario As String
    Public athContrasenia As String
    Public lngIdProceso As Long
    Public intIdaspirante As Integer
    Public sIdseguimientoini As String
    Public sIdseguimientofin As String
    Private blnProceso As Boolean = False


    Public Sub getDatosaspirante()
        Dim wsMetodo As New ServicioProcesoSoapClient
        Dim objDBasico As New EntidadPersonaInformacionBasica
        Dim objDComple As New EntidadPersonaInformacionComplementaria


        ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf CertificateValidationCallBack)

        wsMetodo.Open()

        Try
            objDBasico = wsMetodo.SeleccionarProcesoDatosBasicos(athUsuario, athContrasenia, lngIdProceso)

            If objDBasico.CodigoTipoIdentificacion <> "" Then
                objDComple = wsMetodo.SeleccionarProcesoDatosComplementarios(athUsuario, athContrasenia, lngIdProceso)
                mdlConexion.blnOnDB = True
                mdlIntegracion.grabaAspirante(objDBasico, objDComple)
                mdlConexion.blnOnDB = False

                mdlIntegracion.grabaAspirantecrc(objDBasico, objDComple)

            End If
        Catch ex As Exception
            MsgBox(ex.Message.ToString, MsgBoxStyle.Exclamation, "Error WS Servicio Web")
        End Try

        wsMetodo.Close()

    End Sub

    Public Sub getIdProceso(ByVal strTipoIdentificacion As String, ByVal strNoIdentificacion As String)
        Dim wsMetodo As New ServicioProcesoSoapClient

        ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf CertificateValidationCallBack)

        wsMetodo.Open()

        Try
            mdlIntegracion.lngIdProceso = wsMetodo.SeleccionarProcesoPorIdentificacionAspirante(athUsuario, athContrasenia, strTipoIdentificacion, strNoIdentificacion)
        Catch ex As Exception
            MsgBox(ex.Message.ToString, MsgBoxStyle.Exclamation, "Error WS Servicio Web")
        End Try

        wsMetodo.Close()
    End Sub

    Public Sub prcGetIdSeguimiento(ByVal strRolEspecialista As String, ByVal strIdEspecialista As String)
        Dim wsMetodo As New ServicioProcesoSoapClient
        Dim strIdSeguimmiento As String

        ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf CertificateValidationCallBack)

        wsMetodo.Open()

        Try
            strIdSeguimmiento = wsMetodo.SolicitarIdentificadorSeguimiento(athUsuario, athContrasenia, lngIdProceso, strRolEspecialista, strIdEspecialista, True)

            mdlIntegracion.sIdseguimientoini = strIdSeguimmiento
            mdlIntegracion.exeSirius(strIdSeguimmiento, True)

            If mdlIntegracion.blnProceso = True Then
                strIdSeguimmiento = wsMetodo.SolicitarIdentificadorSeguimiento(athUsuario, athContrasenia, lngIdProceso, strRolEspecialista, strIdEspecialista, False)
                mdlIntegracion.sIdseguimientofin = strIdSeguimmiento
            End If
        Catch ex As Exception
            MsgBox(ex.Message.ToString, MsgBoxStyle.Exclamation, "Error WS Servicio Web")
        End Try

        wsMetodo.Close()
    End Sub

    Private Function exeSirius(ByVal sIdSeguimiento As String, ByVal blnAccion As Boolean)
        If mdlHerramientas.strRutaSirius <> Nothing Then
            Dim intConsecutivo As Integer = 0
            Dim args As String = mdlIntegracion.athUsuario & " " & mdlIntegracion.athContrasenia & " " & sIdSeguimiento & " " & blnAccion
            Dim objProcess As System.Diagnostics.Process

            Do While intConsecutivo < mdlHerramientas.intNumintentos
                Try
                    objProcess = New System.Diagnostics.Process()
                    objProcess.StartInfo.Arguments = args
                    objProcess.StartInfo.FileName = mdlHerramientas.strRutaSirius
                    objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
                    objProcess.Start()

                    'Wait until the process passes back an exit code 
                    objProcess.WaitForExit()

                    'Free resources associated with this process
                    objProcess.Close()
                Catch
                    MessageBox.Show("Could not start process of Software Sirius ", "Error")
                    Return False
                End Try

                mdlIntegracion.getResultadoIdSeguimiento(sIdSeguimiento)
                intConsecutivo = intConsecutivo + 1

                If mdlIntegracion.blnProceso = True Then
                    Exit Do
                End If
            Loop
        End If

        Return False
    End Function

    Public Sub getResultadoIdSeguimiento(ByVal strIdSeguimiento As String)
        Dim wsMetodo As New ServicioProcesoSoapClient
        Dim objResultado As New EntidadResultadoSeguimiento
        Dim objDetalle As New EntidadResultadoSeguimientoDetalle
        Dim sMensaje As String = ""

        ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf CertificateValidationCallBack)

        wsMetodo.Open()

        Try
            objResultado = wsMetodo.SolicitarResultadoIdentificadorSeguimiento(athUsuario, athContrasenia, strIdSeguimiento)

            Select Case objResultado.Estado.ToString
                Case 1, 0
                    mdlIntegracion.blnProceso = True
                Case Else
                    sMensaje = "Error:"

                    For Each objDetalle In objResultado.Detalle
                        sMensaje &= Chr(13) & Chr(13) & "Codigo: " & objDetalle.Codigo.ToString & Chr(13) & objDetalle.Mensaje.ToString
                    Next

                    MsgBox(sMensaje.ToString, MsgBoxStyle.Exclamation, "Error Proceso [Servicio Web]")
                    mdlIntegracion.blnProceso = False
            End Select

        Catch ex As Exception
            MsgBox(ex.Message.ToString, MsgBoxStyle.Exclamation, "Error WS Servicio Web")
        End Try

        wsMetodo.Close()
    End Sub

    Public Sub prcRegistroExamenTemp()
        Dim wsMetodo As New ServicioProcesoSoapClient

        mdlIntegracion.exeSirius(mdlIntegracion.sIdseguimientofin, False)
    End Sub

    Function CertificateValidationCallBack(ByVal Sender As Object, ByVal Certificate As X509Certificate, ByVal Chain As X509Chain, ByVal SSLPolicyErrors As SslPolicyErrors) As Boolean
        Return True
    End Function

    Private Sub grabaAspirante(ByVal objDBasico As EntidadPersonaInformacionBasica, ByVal objDComple As EntidadPersonaInformacionComplementaria)
        Dim strId As String = "0"
        Dim sDocumento As String = objDBasico.NumeroDocumento
        Dim sTipoidentificacion As String = objDBasico.CodigoTipoIdentificacion
        Dim blnValida As Boolean = mdlFunciones.getInteCod("aspirante", "aspirante_id", "aspirante_documento = '" & sDocumento & "' AND tipoidentificacion_id = '" & sTipoidentificacion & "'", strId)
        'Valida si existe el registro de los datos inciales del asirante, si existen extrae el codigo de registro

        If blnValida = False Then
            strId = mdlCRUD.getConsecutivo("aspirante", "aspirante_id", 1) '1 es el ID para consecutivo de Aspirante
            Dim arrCamposAsp() As String = {"aspirante_id",
                                            "aspirante_documento",
                                            "aspirante_prinombre",
                                            "aspirante_segnombre",
                                            "aspirante_priapellido",
                                            "aspirante_segapellido",
                                            "aspirante_fechanacimiento",
                                            "aspirante_fechaexpedicion",
                                            "tipoidentificacion_id",
                                            "ciudad_lugarexpedicion",
                                            "ciudad_lugarnacimiento",
                                            "gruposanguineo_id",
                                            "genero_id"}
            Dim arrValorAsp() As String = {strId,
                                           objDBasico.NumeroDocumento,
                                           objDBasico.PrimerNombre,
                                           objDBasico.SegundoNombre,
                                           objDBasico.PrimerApellido,
                                           objDBasico.SegundoApellido,
                                           objDBasico.FechaNacimiento.ToString("yyyy-MM-dd"),
                                           objDComple.FecExpDocumeno.ToString("yyyy-MM-dd"),
                                           objDBasico.CodigoTipoIdentificacion,
                                           objDComple.LugExpDocumento,
                                           objDBasico.LugarNacimiento,
                                           objDBasico.IdGrupoSanguinio,
                                           objDBasico.Sexo}

            mdlCRUD.insRecordnomsg("aspirante", arrCamposAsp, arrValorAsp)
        End If

        If mdlCRUD.blnFlag = True Then
            Dim strIdasp As String = "0"
            blnValida = mdlFunciones.getInteCod("datoaspirante", "datoaspirante_id", "datoaspirante_numeroproceso = '" & mdlIntegracion.lngIdProceso & "'", strIdasp)
            'Valida si existe el registro de los datos inciales del asirante, si existen extrae el codigo de registro

            If blnValida = False Then
                strIdasp = mdlCRUD.getConsecutivo("datoaspirante", "datoaspirante_id", 2) '2 es el ID para consecutivo de Dato aspirante
                Dim arrCamposDAsp() As String = {"datoaspirante_id",
                                                 "aspirante_id",
                                                 "datoaspirante_numeroproceso",
                                                 "datoaspirante_fecharegistro",
                                                 "datoaspitante_horaregistro",
                                                 "ciudad_residencia",
                                                 "datoaspirante_direccion",
                                                 "datoaspirante_correoelectronico",
                                                 "gradoescolaridad_id",
                                                 "ocupacion_id",
                                                 "estadocivil_id",
                                                 "datoaspirante_movil",
                                                 "datoaspirante_telefono",
                                                 "datoaspirante_nombreacompanante",
                                                 "datoaspirante_telefonoacompanante",
                                                 "epsarp_id"}
                Dim arrValorDAsp() As String = {strIdasp,
                                                strId,
                                                mdlIntegracion.lngIdProceso,
                                                objDBasico.ProcesoDatosBasicos.FechaRegistro.ToString("yyyy-MM-dd"),
                                                "00:00",
                                                objDComple.MuniResidencia,
                                                objDComple.Direccion,
                                                objDComple.Email,
                                                objDBasico.IdGradoEscolaridad,
                                                objDComple.Ocupacion,
                                                objDComple.EstadoCivil,
                                                objDComple.Movil,
                                                objDComple.Telefono,
                                                objDBasico.ProcesoDatosBasicos.NombreAcompanante,
                                                objDBasico.ProcesoDatosBasicos.TelefonoAcompanante,
                                                objDComple.EpsArs}

                mdlCRUD.insRecordnomsg("datoaspirante", arrCamposDAsp, arrValorDAsp)


                If mdlCRUD.blnFlag = True Then
                    Dim strIdTramite As String = mdlCRUD.getConsecutivo("procesotramite", "procesotramite_id", 8) '8 es el ID para consecutivo de Proceso tramites

                    Dim arrCamposPTra() As String = {"procesotramite_id",
                                                     "datoaspirante_id",
                                                     "categoria_id",
                                                     "tramite_id",
                                                     "servicio_id",
                                                     "objetivo_id",
                                                     "estadoproceso_id"}
                    Dim arrValorPTra() As String = {strIdTramite,
                                                    strIdasp,
                                                    objDBasico.ProcesoDatosBasicos.Categoria,
                                                    objDBasico.ProcesoDatosBasicos.Tramite,
                                                    objDBasico.ProcesoDatosBasicos.Servicio,
                                                    objDBasico.ProcesoDatosBasicos.Objetivo,
                                                    objDBasico.ProcesoDatosBasicos.Estado}

                    mdlCRUD.insRecordnomsg("procesotramite", arrCamposPTra, arrValorPTra)

                    If objDBasico.ProcesoDatosBasicos.SegundaCategoria <> "0" Then
                        strIdTramite += 1

                        Dim arrValoPTrar1() As String = {strIdTramite,
                                                         strIdasp,
                                                         objDBasico.ProcesoDatosBasicos.SegundaCategoria,
                                                         objDBasico.ProcesoDatosBasicos.SegundoTramite,
                                                         objDBasico.ProcesoDatosBasicos.Servicio,
                                                         objDBasico.ProcesoDatosBasicos.Objetivo,
                                                         objDBasico.ProcesoDatosBasicos.Estado
                                                        }

                        mdlCRUD.insRecordnomsg("procesotramite", arrCamposPTra, arrValoPTrar1)
                    End If

                    'Consuta imagen y almacena informacion
                    Dim wsMetodo As New ServicioProcesoSoapClient
                    Dim objDImagen As New EntidadProcesoBiometriaSalida

                    wsMetodo.Open()
                    Try
                        objDImagen = wsMetodo.SeleccionarImagenesProceso(athUsuario, athContrasenia, lngIdProceso)

                        If objDImagen.Fotografia <> "" Then
                            Dim strIdFoto As String = mdlCRUD.getConsecutivo("fotoaspirante", "fotoaspirante_id", 9) '9 es el ID para consecutivo de Fotografias
                            Dim arrCamposFoto() As String = {"fotoaspirante_id", "datoaspirante_id", "fotoaspirante_data"}
                            Dim arrValorFoto() As String = {strIdFoto, strIdasp, objDImagen.Fotografia}
                            Dim snombreFoto As String = "fto" & objDBasico.NumeroDocumento & "_" & mdlIntegracion.lngIdProceso & ".jpg"


                            mdlCRUD.insRecordnomsg("fotoaspirante", arrCamposFoto, arrValorFoto)
                            mdlFunciones.grabaBase64ToImage(objDImagen.Fotografia, snombreFoto, mdlHerramientas.strRutafotografia)

                        End If

                        If objDImagen.HuellaDer <> "" Then
                            Dim strIdHder As String = mdlCRUD.getConsecutivo("huelladerecha", "huelladerecha_id", 10) '10 es el ID para consecutivo de Huella Derecha
                            Dim arrCamposHder() As String = {"huelladerecha_id", "datoaspirante_id", "huelladerecha_data"}
                            Dim arrValorHder() As String = {strIdHder, strIdasp, objDImagen.HuellaDer}
                            Dim snombreHder As String = "hder" & objDBasico.NumeroDocumento & "_" & mdlIntegracion.lngIdProceso & ".jpg"


                            mdlCRUD.insRecordnomsg("huelladerecha", arrCamposHder, arrValorHder)
                            mdlFunciones.grabaBase64ToImage(objDImagen.HuellaDer, snombreHder, mdlHerramientas.strRutahuelladerecha)

                        End If

                        If objDImagen.HuellaIzq <> "" Then
                            Dim strIdIzqu As String = mdlCRUD.getConsecutivo("huellaizquierda", "huellaizquierda_id", 10) '10 es el ID para consecutivo de Huella Derecha
                            Dim arrCamposIzqu() As String = {"huellaizquierda_id", "datoaspirante_id", "huellaizquierda_data"}
                            Dim arrValorIzqu() As String = {strIdIzqu, strIdasp, objDImagen.HuellaIzq}
                            Dim snombreHizq As String = "hizq" & objDBasico.NumeroDocumento & "_" & mdlIntegracion.lngIdProceso & ".jpg"


                            mdlCRUD.insRecordnomsg("huellaizquierda", arrCamposIzqu, arrValorIzqu)
                            mdlFunciones.grabaBase64ToImage(objDImagen.HuellaDer, snombreHizq, mdlHerramientas.strRutahuellaizquierda)

                        End If
                    Catch ex As Exception
                        MsgBox(ex.Message.ToString, MsgBoxStyle.Exclamation, "Error WS Servicio Web")
                    End Try
                End If
            End If
        End If

        'mdlIntegracion.intIdaspirante = strId
    End Sub

    Private Sub grabaAspirantecrc(ByVal objDBasico As EntidadPersonaInformacionBasica, ByVal objDComple As EntidadPersonaInformacionComplementaria)
        Dim strId As String = "0"
        Dim blnReferencia As Boolean
        Dim sDocumento As String = objDBasico.NumeroDocumento
        Dim sTipoidentificacion As String = ""

        mdlConexion.blnOnDB = True
        blnReferencia = getInteCod("tipoidentificacion", "tipoidentificacion_idcrc", "tipoidentificacion_id = '" & objDBasico.CodigoTipoIdentificacion & "'", sTipoidentificacion)
        mdlConexion.blnOnDB = False

        Dim blnValida As Boolean = mdlFunciones.getInteCod("persona", "persona_id", "persona_documento = '" & sDocumento & "' AND tipodocumento_id = '" & sTipoidentificacion & "'", strId)
        'Valida si existe el registro de los datos inciales del asirante, si existen extrae el codigo de registro

        If blnValida = False Then
            strId = mdlCRUD.getConsecutivo("persona", "persona_id", 2) '2 es el ID para consecutivo de Persona
            Dim sGruposanguineo As String = "", sRh As String = "", sGenero As String = ""

            mdlConexion.blnOnDB = True
            blnReferencia = mdlFunciones.getInteCod("gruposanguineo", "gruposanguineo_idcrc", "gruposanguineo_id = '" & objDBasico.IdGrupoSanguinio & "'", sGruposanguineo)
            blnReferencia = mdlFunciones.getInteCod("gruposanguineo", "gruposanguineo_idcrcrh", "gruposanguineo_id = '" & objDBasico.IdGrupoSanguinio & "'", sRh)
            blnReferencia = mdlFunciones.getInteCod("genero", "genero_idcrc", "genero_id = '" & objDBasico.Sexo & "'", sGenero)
            mdlConexion.blnOnDB = False

            Dim arrCamposPer() As String = {"persona_id",
                                            "persona_documento",
                                            "tipodocumento_id",
                                            "persona_prinombre",
                                            "persona_segnombre",
                                            "persona_priapellido",
                                            "persona_segapellido",
                                            "persona_fechanacimiento",
                                            "persona_lugarnacimiento",
                                            "tiposangre_id",
                                            "rh_id",
                                            "sexo_id",
                                            "aspirante_fechaexpedicion",
                                            "persona_lugarexpedicion"}
            Dim arrValorPer() As String = {strId,
                                           sDocumento,
                                           sTipoidentificacion,
                                           objDBasico.PrimerNombre,
                                           objDBasico.SegundoNombre,
                                           objDBasico.PrimerApellido,
                                           objDBasico.SegundoApellido,
                                           objDBasico.FechaNacimiento.ToString("yyyy-MM-dd"),
                                           objDBasico.LugarNacimiento,
                                           sGruposanguineo,
                                           sRh,
                                           sGenero,
                                           objDComple.FecExpDocumeno.ToString("yyyy-MM-dd"),
                                           objDComple.LugExpDocumento}

            mdlCRUD.insRecordnomsg("persona", arrCamposPer, arrValorPer)
        End If

        If mdlCRUD.blnFlag = True Then
            Dim strIdAspirante As String = mdlCRUD.getConsecutivo("aspirante", "aspirante_id", 3) '3 es el ID para consecutivo de Aspirante
            Dim sGradoescolaridad As String = "", sOcupacion As String = "", sEstadocivil As String = "", sEPSARP As String = ""

            mdlConexion.blnOnDB = True
            blnReferencia = mdlFunciones.getInteCod("gradoescolaridad", "gradoescolaridad_idcrc", "gradoescolaridad_id = '" & objDBasico.IdGradoEscolaridad & "'", sGradoescolaridad)
            blnReferencia = mdlFunciones.getInteCod("ocupacion", "ocupacion_idcrc", "ocupacion_id = '" & objDComple.Ocupacion & "'", sOcupacion)
            blnReferencia = mdlFunciones.getInteCod("estadocivil", "estadocivil_idcrc", "estadocivil_id = '" & objDComple.EstadoCivil & "'", sEstadocivil)
            blnReferencia = mdlFunciones.getInteCod("epsarp", "epsarp_idcrc", "epsarp_id = '" & objDComple.EpsArs & "'", sEPSARP)
            mdlConexion.blnOnDB = False

            Dim arrCamposAsp() As String = {"aspirante_id",
                                            "persona_id",
                                            "aspirante_numeroproceso",
                                            "aspirante_fecharegistro",
                                            "aspitante_horaregistro",
                                            "ciudad_residencia",
                                            "aspirante_direccion",
                                            "aspirante_correoelectronico",
                                            "nivelescolaridad_id",
                                            "ocupacion_id",
                                            "estadocivil_id",
                                            "aspirante_movil",
                                            "aspirante_telefono",
                                            "aspirante_nombreacompanante",
                                            "aspirante_telefonoacompanante",
                                            "epsarp_id"}
            Dim arrValorAsp() As String = {strIdAspirante,
                                           strId,
                                           mdlIntegracion.lngIdProceso,
                                           objDBasico.ProcesoDatosBasicos.FechaRegistro.ToString("yyyy-MM-dd"),
                                           "00:00",
                                           objDComple.MuniResidencia,
                                           objDComple.Direccion,
                                           objDComple.Email,
                                           sGradoescolaridad,
                                           sOcupacion,
                                           sEstadocivil,
                                           objDComple.Movil,
                                           objDComple.Telefono,
                                           objDBasico.ProcesoDatosBasicos.NombreAcompanante,
                                           objDBasico.ProcesoDatosBasicos.TelefonoAcompanante,
                                           sEPSARP}

            mdlCRUD.insRecordnomsg("aspirante", arrCamposAsp, arrValorAsp)


            If mdlCRUD.blnFlag = True Then
                Dim strIdTramite As String = mdlCRUD.getConsecutivo("procesotramite", "procesotramite_id", 4) '4 es el ID para consecutivo de Proceso tramites
                Dim sCategoria As String = "", sTramite As String = "", sServicio As String = "", sObjetivo As String = ""

                mdlConexion.blnOnDB = True
                blnReferencia = mdlFunciones.getInteCod("categoria", "categoria_idcrc", "categoria_id = '" & objDBasico.ProcesoDatosBasicos.Categoria & "'", sCategoria)
                blnReferencia = mdlFunciones.getInteCod("tramite", "tramite_idcrc", "tramite_id = '" & objDBasico.ProcesoDatosBasicos.Tramite & "'", sTramite)
                blnReferencia = mdlFunciones.getInteCod("servicio", "servicio_idcrc", "servicio_id = '" & objDBasico.ProcesoDatosBasicos.Servicio & "'", sServicio)
                blnReferencia = mdlFunciones.getInteCod("objetivo", "objetivo_idcrc", "objetivo_id = '" & objDBasico.ProcesoDatosBasicos.Objetivo & "'", sObjetivo)
                mdlConexion.blnOnDB = False

                Dim arrCamposPTra() As String = {"procesotramite_id", "aspirante_id", "categoria_id", "tramite_id", "servicio_id", "objetivo_id", "estadoproceso_id"}
                Dim arrValorPTra() As String = {strIdTramite, strIdAspirante, sCategoria, sTramite, sServicio, sObjetivo, 1}

                mdlCRUD.insRecordnomsg("procesotramite", arrCamposPTra, arrValorPTra)

                'nuevo certificado
                Dim strIdCertificado As String = mdlCRUD.getConsecutivo("certificaciones", "certificaciones_id", 5) '8 es el ID para consecutivo del certificado
                Dim arrCamposCertificado() As String = {"certificaciones_id,estadocertificacion_id,procesotramite_id"}
                Dim arrValorCertificado() As String = {strIdCertificado, "1", strIdTramite}

                mdlCRUD.insRecordnomsg("certificaciones", arrCamposCertificado, arrValorCertificado)

                If objDBasico.ProcesoDatosBasicos.SegundaCategoria <> "0" Then
                    strIdTramite += 1
                    arrValorPTra(0) = strIdTramite
                    mdlConexion.blnOnDB = True
                    blnReferencia = mdlFunciones.getInteCod("categoria", "categoria_idcrc", "categoria_id = '" & objDBasico.ProcesoDatosBasicos.SegundaCategoria & "'", arrValorPTra(1))
                    blnReferencia = mdlFunciones.getInteCod("tramite", "tramite_idcrc", "tramite_id = '" & objDBasico.ProcesoDatosBasicos.SegundoTramite & "'", arrValorPTra(2))
                    mdlConexion.blnOnDB = False

                    mdlCRUD.insRecordnomsg("procesotramite", arrCamposPTra, arrValorPTra)

                    'nuevo certificado
                    strIdCertificado += 1
                    arrCamposCertificado = {"certificaciones_id,estadocertificacion_id,procesotramite_id"}
                    arrValorCertificado = {strIdCertificado, "1", strIdTramite}

                    mdlCRUD.insRecordnomsg("certificaciones", arrCamposCertificado, arrValorCertificado)
                End If
            End If
        End If

        mdlIntegracion.intIdaspirante = strId
    End Sub

End Module
